home *** CD-ROM | disk | FTP | other *** search
-
-
-
- Interactive Matrix Calculator
-
- Version of 2 January 1987
-
- Copyright (c) 1987
-
- by
-
- David L. Turner
- Mountain Home Software Co.
- 13360 N. Mt. Home Road
- Cove (Lewiston),Utah 84320
- Phone (801)258-5164
-
-
-
- Provided as User Supported Software, to be freely copied for
- noncomercial use. The author reserves the right to distribute this
- package or any part thereof, for profit.
-
- If you find this program useful, your voluntary contribution of $25,
- or whatever you feel the program is worth, will provide updates,
- further documentation and encouragement for production of similar
- software.
-
- The program is written and compiled in Microsoft Basic. It uses
- double precision arithmetic for all storage and operations. Due to a
- limitation of Microsoft Basic, the program operates on only 20 matrix
- areas, numbered from 1 through 20. Each matrix may store 150
- elements, the product of the number of rows with the number of
- columns. Since the matrices are stored in contiguous blocks, if every
- other matrix, say numbers 1,3,5, etc. only, are used, then up to 300
- elements per matrix may be stored. Storage of 450 elements per matrix is
- possible if only areas 1,4,7 etc. are used, 600 elements if only 1,5,
- etc. are used, etc. Since the program makes no boundary checks, the
- 151st element of a matrix will be placed into the first position of
- the next matrix.
-
- Only one Operation at a time is performed, i.e. only one
- multiplication, one addition, etc. Results may be displayed at any
- time using the Print command. The storage limit of 20 matrices may be
- extended by using the disk for additional storage and retrieval.
-
- Known limitations of the program are those inherent to Microsoft
- Basic, i.e. limited array storage size, no recognition of path names
- for files, etc. The program has been in use in classroom and
- consulting work for several years, so most of the major bugs have been
- taken care of. Registered users will be notified of major updates and
- new releases. Problem reports are encouraged as are suggestions for
- enhancements.
-
- The program is invoked from the MS-DOS prompt by giving the command
- MATRIX. This displays the opening screen, which lists the version,
- the author and the following menu:
-
-
-
-
-
-
-
-
-
- Interactive Matrix Calculator Documentation Page 2
-
-
- Valid Commands are:
- + or A to Add matrices
- C to do Cholesky (Square root) decomposition
- D to Duplicate (copy) from one area to another
- E for Elementary operations loop
- F to Fix a single element
- G to get Part of a matrix (copy part to another)
- I to calculate the Inverse using sweep operator (Gaussian eliminition)
- J to Join two matrices together
- K to Keep or retrive a worksheet to or from disk
- ?, L or H for Help or to List the menu
- * or M to Multiply matrices
- N to print or read a 'nice' matrix
- P to Print a matrix to screen or disk
- Q or X to Quit or Exit
- R to Read in a matrix from keyboard or disk
- - to Subtract matrices
- S to Sweep a matrix
- T to calculate Trace and/or sum of all elements of a matrix
- ' to Transpose a matrix
- Z to change Epsilon or change values < epsilon to 0
-
- READY
-
- Execution of each command is begun immediately after the appropriate
- letter is touched. The program prompts the user for additional
- required input. A brief alphabetical listing and discussion of each
- command follows.
-
-
- ADD OR + COMMAND
-
- The program asks for indices for the left, right and answer or
- destination matrices. The example below adds Matrix 1 on the left and
- Matrix 2 on the right, putting the answer into Matrix 3.
-
- READY
- A
- To Add (left or first) matrix + (second or right) matrix
- into (destination) matrix, Enter numbers for
- left, right and destination matrices: 1 2 3
- Matrix 3 = Matrix 1 + Matrix 2
-
-
- CHOLESKY COMMAND
-
- For a nonnegative (positive definite or positive semidefinite) matrix
- A, the Cholesky or square root decomposition finds an upper
- triangular matrix T such that T'T = A. If a nonsquare matrix (A,B),
- is input to this routine, then A is still assumed to be a nonnegative
- matrix. For such nonsquare matrices, the Cholesky decomposition
- leaves the T matrix in the first k rows and columns and the product
- (T'inverse)B in place of the B matrix. This is a very useful
- procedure in statistical modeling.
-
- If the following matrix is in area 3,
-
- Row # 1 : 1 , 2 , 3 ,
- Row # 2 : 2 , 20 , 26 ,
-
-
-
-
- Interactive Matrix Calculator Documentation Page 3
-
-
- then the Cholesky command execution is begun by touching the C key at
- the READY prompt. The program then asks for the number of the
- original matrix, the matrix to be "square rooted," and a number for
- the result. Again it is a good idea to print the resulting
- "Choleskied" matrix. To be certain of the output, calculation and
- examination of T'T is also recommended.
-
- READY
- C
- Cholesky or square root decomposition routine
- Enter number of matrix to square root and number of matrix for result: 3 4
- Matrix 4 contains the 'square root' of Matrix 3
-
- This produces the following matrix in area 4:
-
- Row # 1 : 1 , 2 , 3 ,
- Row # 2 : 0 , 4 , 5 ,
-
-
- DUPLICATE OR COPY COMMAND
-
- Sometimes it is useful to operate on a copy of a matrix rather than
- the original matrix. To Duplicate or copy a matrix, touch the D key
- at the READY prompt. Then enter the number of the original matrix and
- the number for the copy or duplicate.
-
- READY
- D
- Matrix Duplication or Copy routine
- Enter numbers for original and copy matrices: 1 2
- Matrix 2 is a copy or duplicate of Matrix 1
-
-
- ELEMENTARY OPERATIONS COMMAND
-
- This command lets the user perform elementary row operations such as
- interchanging 2 rows, multiplying or dividing a row by a constant or
- adding a multiple of a row to another row.
-
- If a matrix A is augmented by an appropriate sized identity, and then
- elementary row operations are performed on the augmented matrix (A,I)
- until the matrix looks like (I,B), then B will be the inverse of A.
- If the original A matrix cannot be reduced to an identity, coming as
- close as possible will make B a generalized inverse of A.
-
- For the example below, the matrix (1 2/2 5) is augmented with a 2 x 2
- identity matrix and this 2 x 4 matrix is then loaded into matrix area
- 1. To start the Elemenrary row operations, press the E key at the
- READY prompt and then follow the instructions.
-
- For this simple example, the first row is multiplied by -2 and added
- to the second row. After printing this intermediate result, it is
- easy to see that the second row must be multiplied by -2 and added to
- the first row. This makes an identity matrix where the A matrix
- started and consequently contains the inverse of A where the identity
- started. This inverse may then be extracted from this augmented
- matrix using the Get command.
-
- READY
- E
-
-
-
- Interactive Matrix Calculator Documentation Page 4
-
-
- Routine to do elementary row operations
- Enter number of matrix to work on: ? 1
-
- C followed by numbers of rows to interchange
-
- Enter M or * (D or /) followed by first row#, scalar, second row#
- to Multiply(Divide) first row by scalar and add to second row
-
- If second row# is omitted, row will be multiplied by scalar
-
- P will print the matrix
-
- L or H to print menu (list) of elementary commands
-
- <CR> will return to main menu (terminate elementary operations)
-
- Enter operator: M 1 -2 2
- Row # 1 has been multiplied by -2 and added to row # 2
-
- Enter operator: P
-
- Row # 1 : 1 , 2 , 1 , 0 ,
- Row # 2 : 0 , 1 , -2 , 1 ,
-
- Enter operator: M 2 -2 1
- Row # 2 has been multiplied by -2 and added to row # 1
-
- Enter operator: P
-
- Row # 1 : 1 , 0 , 5 , -2 ,
- Row # 2 : 0 , 1 , -2 , 1 ,
- Enter operator: <cr>
-
-
- FIX COMMAND
-
- Since few typists or data entry personnel are perfect, a command is
- provided to fix a single element in any of the matrices. To Fix a
- matrix, touch the F key at the READY prompt and follow the
- instructions. The example below makes the element in row 1 and column
- 3 of matrix 1 equal to 33. It is a good idea to print the matrix
- after changing an element to confirm that the change has taken place.
-
- READY
- F
- Matrix Fixing routine
- Enter matrix number, row no. and column no.
- of element to fix and the correct value: 1 1 3 33
- The element in row 1 and column 1 of Matrix 3 has been changed to 33
-
-
- GET COMMAND
-
- Sometimes a matrix must be decomposed into some smaller pieces. This
- may be done with the Get command. Columns and rows from one matrix
- are copied into a second matrix. If matrix 3 contains the product
- (X,Y)'(X,Y), then Rows 1 and 2 and columns 1 and 2 contain the X'X
- matrix. Rows 1 and 2 of column 3 contain X'Y.
-
-
-
-
-
- Interactive Matrix Calculator Documentation Page 5
-
-
- To start the Get command, just touch the G key at the READY prompt and
- follow the instructions.
- READY
- G
- Get part of a matrix
- Enter number of original and new matrices: 3 5
-
- Enter the number of rows for the new matrix: ? 2
-
- Now enter 2 indices for the rows to be selected from old matrix
- to be put into the new matrix 1 2
-
- Now enter the number of columns for the new matrix ? 1
-
- Now enter 1 indices for columns to be selected from the old matrix
- to be put into the new matrix 3
- Matrix 5 contains parts of Matrix 3
-
- READY
- P
- Enter number of matrix to print:
- or enter file name to write matrix to a disk file: 5
-
- Row # 1 : 6 , 46 ,
- Row # 2 : 46 , 462 ,
-
-
- INVERSE COMMAND
-
- Gaussian elimination or pivoting is the only explicit inverse routine
- provided in this package. Some very elementary checks are built in to
- prevent division by zero or by a number "close" to zero. The validity
- of any inverse computed by this procedure should be checked by seeing
- if the product of the orignial matrix and the supposed inverse is
- "close" to an identity matrix.
-
- The X'X matrix Gotten in the Get example is inverted. The procedure
- is invoked by touching the I key at the READY prompt and then giving
- the number of the matrix to invert and the number of the matrix for
- storing the result. The actual value of the pivoting element is
- printed. The matrix must be swept or pivoted on each diagonal element.
- In the example below, the answer is checked by multiplication. Note
- that this product matrix is "close" to an identity matrix.
-
- READY
- I
- Inversion using Sweep operator (Gaussian elimination)
- Enter index of matrix to invert and index for result: 4 6
- Sweeping element # 2 With diagonal value= 462
- Sweeping element # 1 With diagonal value= 1.4199134199134
- Matrix 6 = (Matrix 4)inverse
-
- READY
- M
- To Multiply (left or first) matrix * (second or right) matrix
- into (destination) matrix, enter numbers for
- left, right and destination matrices
- Or to multiply a matrix by a scalar enter M (or D to divide)
- followed by matrix number and scalar: 4 6 7
- Matrix 7 = Matrix 4 * Matrix 6
-
-
-
- Interactive Matrix Calculator Documentation Page 6
-
-
- READY
- P
- Matrix output routine
- Enter number of matrix to display or
- enter a file name to write matrix to a disk file: 7
-
- Row # 1 : .9999999999999999 , -6.938893903907228D-18 ,
- Row # 2 : -8.881784197001252D-16 , 1 ,
-
-
- JOIN COMMAND
-
- The Join command is used to augment or put together two matrices. To
- Join 2 matrices together, touch the J key at the READY prompt and
- follow the instructions. Again it is a good idea to print the
- resulting joined or augmented matrix. For vertical augmentation,
- work with transposes and then transpose the final augmented matrix.
-
- READY
- J
- Matrix Joining or augmentation routine
- Enter numbers for left, right and augmented matrices: 2 2 3
- Matrix 3 = (Matrix 2, Matrix 2)
-
-
- KEEP AND RETRIEVE COMMANDS
-
- To save or retrieve all the matrices for a particular worksheet, the
- Keep command is used. It dumps or retrieves all the matrices to or
- from a file, allowing the user to save all of the current matrices or
- to retrieve all of the matrices used in a previously saved worksheet.
-
- Touching the K key at the READY prompt causes the program to prompt
- the user for more information. To save the current worksheet type S
- followed by a file name. To retrieve a previously saved worksheet,
- type R followed by the name of the file to be retrieved.
-
- The Save operation creates a file whose first 2 records describe what
- the file is. The next record tells the overall size of the worksheet,
- the number of matrices available and the number of elements for each
- one. Then comes information about each matrix: the matrix number,
- the number of rows and the number of columns followed by the elements
- of the matrix in rowwise order.
-
- When retrieving a saved worksheet, the program lists the matrix number
- and size for each matrix as it is retrieved. An example of both
- saving and the later retrieval of a worksheet is given below.
-
- READY
- K
- Worksheet Save/Retrieve routine
- Enter S to Save a worksheet
- R to Retrieve or Reload a worksheet: S
- Enter name of file to be Saved or Retrieved: try.sav
- Saving the matrix worksheet into a file named try.sav
- 2 x 2 Matrix 1 in the worksheet stored in file try.sav
- 2 x 2 Matrix 2 in the worksheet stored in file try.sav
- 2 x 4 Matrix 3 in the worksheet stored in file try.sav
-
-
-
-
-
- Interactive Matrix Calculator Documentation Page 7
-
-
- READY
- K
- Worksheet Save/Retrieve routine
- Enter S to Save a worksheet
- R to Retrieve or Reload a worksheet: R
- Enter name of file to be Saved or Retrieved: try.sav
- Retrieving a worksheet from the file named try.sav
- Beginning to load a matrix into area # 1
- Matrix area number 1 has been successfully loaded with a 2 x 2 matrix
-
- Beginning to load a matrix into area # 2
- Matrix area number 2 has been successfully loaded with a 2 x 2 matrix
-
- Beginning to load a matrix into area # 3
- Matrix area number 3 has been successfully loaded with a 2 x 4 matrix
-
-
- ?, HELP or LIST COMMAND
-
- Very limited help is provided in this program, i.e. the list of valid
- commands is printed whenever a ?,H or L key is touched at the READY
- prompt.
-
-
- MULTIPLY COMMAND
-
- Two matrices may be multiplied together only if they are conformable for
- multiplication. This means that the number of columns in the left or
- first matrix must be the same as the number of rows in the right or
- second matrix. The program does not make any checks for conformability,
- so the user must be careful, and printing of each of the component
- matrices and the product matrix is recommended. As an example, the
- product M2*M1 is computed below and placed into matrix area number 3.
-
- READY
- M
- To Multiply (left or first) matrix * (second or right) matrix
- into (destination) matrix, enter numbers for
- left, right and destination matrices
- Or to multiply a matrix by a scalar enter M (or D to divide)
- followed by matrix number and scalar: 2 1 3
- Matrix 3 = Matrix 2 * Matrix 1
-
- This command may also be used for performing scalar multiplication or
- division where each element of a matrix is to be multplied or divided
- by a scalar.
-
- READY
- M
- To Multiply (left or first) matrix * (second or right) matrix
- into (destination) matrix, enter numbers for
- left, right and destination matrices
- Or to multiply a matrix by a scalar enter M (or D to divide)
- followed by matrix number and scalar: M 1 3
- Every element in matrix number 1 has been multiplied by 3
-
- READY
- M
- To Multiply (left or first) matrix * (second or right) matrix
- into (destination) matrix, enter numbers for
-
-
-
- Interactive Matrix Calculator Documentation Page 8
-
-
- left, right and destination matrices
- Or to multiply a matrix by a scalar enter M (or D to divide)
- followed by matrix number and scalar: D 1 2
- Every element in matrix number 1 has been multiplied by .5
-
-
- NICE PRINT/READ COMMAND
-
- Microsoft Basic has very primitive output formatting capacities, but
- some nicer formatting is possible. This command functions just about
- like the Print command. To print a matrix in a "nice" format, touch
- the N key, then the P key and then specify the matrix to print. The
- matrix is then printed in scientific notation. For example,
- -.7012195122D-01 translates as -.7012195122 times 10 to the -1 power,
- or -0.07012195122 for the final answer.
-
- READY
- N
- For a 'nice' printout enter 'P'
- To input a 'nice' (i.e. rectangular) matrix, enter 'R': P
- Matrix output routine
- Enter number of matrix to display or
- enter a file name to write matrix to a disk file: 4
-
- Row # 1 : 0.7042682927D+00, -.7012195122D-01, 0.4975609756D+01,
- Row # 2 : -.7012195122D-01, 0.9146341463D-02, 0.8292682927D+00,
- Row # 3 : -.4975609756D+01, -.8292682927D+00, 0.1214634146D+02,
-
- The Nice command may also be used to read in rectangular matrices or
- data from a previously prepared disk file. For example, if the matrix
- (1 2 3/4 5 6) is stored in a file named TRY.IT which contains 2
- records, one for each row, then this file may be read into a matrix
- area using the Nice Read command. Note that the 2 values for number
- of rows and number of columns must be separated by a comma for this
- routine.
-
- READY
- N
- For a 'nice' printout enter 'P'
- To input a 'nice' (i.e. square) matrix, enter 'R': R
- Enter name of previously saved file to read from disk: try.it
- Reading a matrix from a previously saved file try.it
- Enter the number of the area to read matrix into ? 1
- Enter number of rows and columns for the matrix: ? 2 3
- ?Redo from start
- ? 2,3
- 2 x 3 matrix from file try.it read into Matrix 1
-
- READY
- P
- Matrix output routine
- Enter number of matrix to display or
- enter a file name to write matrix to a disk file: 2
-
- Row # 1 : 1 , 2 , 3 ,
- Row # 2 : 4 , 5 , 6 ,
-
-
-
-
-
-
-
- Interactive Matrix Calculator Documentation Page 9
-
-
- PRINT COMMAND
-
- To see the results of any command, the Print command must be used.
- The program prompts for and prints only one matrix at a time. Any
- matrix may also be printed to disk, expanding the storage capacity of
- the program. An example of disk storage for an individual matrix is
- provided below. The example below is started by touching the P key at
- the READY prompt and then entering 2 as the number of the matrix to be
- printed.
-
- READY
- P
- Matrix output routine
- Enter number of matrix to display or
- enter a file name to write matrix to a disk file: 1
-
-
- PRINT TO DISK COMMAND
-
- While only 20 matrices are available for internal storage, matrices
- may be written to disk files, one file per matrix. To create a disk
- file for any matrix, simply touch the P key at the READY prompt and
- then enter a file name rather than a matrix number. The program will
- then prompt for the number of the matrix to be written to the disk
- file. For example, to create a file which contains the matrix stored
- in area number 1, give the file name EXAMPLE.MAT when prompted for the
- matrix number.
-
- READY
- P
- Matrix output routine
- Enter number of matrix to display or
- enter a file name to write matrix to a disk file: example.mat
- Number of Matrix to write to disk: ? 1
- Matrix 1 written to the file example.mat
-
-
- QUIT, EXIT OR STOP COMMAND
-
- Although a control-C or control-Break command will kill the program,
- the Q or X command will cause a "graceful" exit from the program.
- Touching the Q or X key at the READY prompt causes the program to
- terminate.
-
-
- READ COMMAND
-
- Before any operations may be performed, something must be read into
- the matrix worksheet to operate on. To read a matrix in, the Read
- command is used. The program then asks for the number of the matrix
- to read data into, and then the number of rows and columns to be read
- in. The program then prompts for the entries for each row. The
- numbers for each row must then be entered separated by commas or
- blanks.
-
- For example, to read a 2 row by 3 column matrix into area 1, start by
- touching the R key at the READY prompt, and then following the
- instructions. The first line indicates that the matrix is to be read
- into area 1 and that it will contain 2 rows and 3 columns. The
- elements for the first row are then entered, followed by the elements
- for the second row.
-
-
- Interactive Matrix Calculator Documentation Page 10
-
-
-
-
- READY
- R
- Matrix Read or Input Routine
- Enter matrix number, no. rows and no. columns or enter a
- file name to read a previously saved file from disk: 1 2 3
- Input row # 1 : 1 2,3
- 1 2,3
- Input row # 2 : 4,5,1
- 4,5,1
-
-
- READ FROM DISK COMMAND
-
- To read a matrix back into a matrix area, give the file name when
- prompted for a matrix number. The example below reloads the matrix
- saved previously in the file EXAMPLE.MAT.
-
- READY
- R
- Matrix Read or Input Routine
- Enter matrix number, no. rows and no. columns or enter a
- Enter name of previously saved file to read from disk: example.mat
- Reading a matrix from a previously saved file example.mat
- Enter the number of the area to read matrix into ? 2
- 2 x 4 matrix read from the file example.mat into Matrix 2
-
-
- SUBTRACT OR - COMMAND
-
- The Subtract command works just like the addition command except that
- the right or second matrix is subtracted from the left or first
- matrix. For example,
-
- READY
- -
- To Subtract (left or first) matrix - (second or right) matrix
- into (destination) matrix, Enter numbers for
- left, right and destination matrices: 1 2 3
- Matrix 3 = Matrix 1 - Matrix 2
-
-
- SWEEP COMMAND
-
- The sweep command may be used in finding inverses of "nice" matrices.
- It performs Gaussian elimination one step at a time. It is a very
- convenient method of performing multiple regression analysis
- computations especially when any variable selection is to be done.
- The matrix listed below contains the product (X,Y)'(X,Y) = X'X X'Y
- Y'X Y'Y
- The X matrix contains the X or independent variables to be used in
- predicting the Y variable. After sweeping one or more variables into
- the equation, the column which originally contained X'Y will contain
- the regression coefficients for those variables in the equation. The
- single element corresponding to the Y'Y element in the initial or
- original matrix will contain the error sum of squares for the model
- containing the swept variables.
-
- One nice feature of the sweep operator is that it is reversible. This
- means that if a variable is swept twice, the second sweep removes the
-
-
- Interactive Matrix Calculator Documentation Page 11
-
-
- variable from the equation. This procedure is widely used in stepwise
- regression programs.
-
- Generally the first column and row corresponds to an X variable which
- is equal to 1 for each observation to put the intercept into the
- equation. The second, third, etc. columns correspond to the first,
- second, etc. variables available for the equation. The last row and
- column corresponds to the Y variables.
-
- In the example below, the intercept is first "swept" into a 1 variable
- equation which also has an intercept. This gives corrected sums of
- squares and crossproducts for the second and third columns and rows of
- this matrix. The second sweep operation gives the (X'X) inverse, the
- vector of regression coefficients and the error sum of squares. The
- initial, unswept matrix is
-
- Row # 1 : 6 , 46 , 68 ,
- Row # 2 : 46 , 462 , 612 ,
- Row # 3 : 68 , 612 , 858 ,
-
- READY
- S
- Sweep Operator
- Enter matrix and element number to sweep: 4 1
- Matrix 4 has been swept on element 1
-
- READY
- S
- Sweep Operator
- Enter matrix and element number to sweep: 4 2
- Matrix 4 has been swept on element 2
-
- READY
- P
- Matrix output routine
- Enter number of matrix to display or
- enter a file name to write matrix to a disk file: 4
-
- Row # 1 : .1666666666666667 , 7.666666666666667 , 11.33333333333333 ,
- Row # 2 : -7.666666666666667 , 109.3333333333333 , 90.66666666666667 ,
- Row # 3 : -11.33333333333333 , 90.66666666666667 , 87.33333333333333 ,
-
-
- TRACE COMMAND
-
- Sometimes the sum of the diagonal elements, the trace of a matrix, is
- needed. This is done with the Trace Command which is started by
- touching the T key at the READY prompt. This causes the program to
- prompt the user for a matrix number. The sum of all the elements and
- the sum of the diagonal elements is then computed and printed.
-
- READY
- T
- Matrix Trace and sum routine
- Enter number of matrix whose elements are to be summed
- or whose trace is to be found if matrix is square: ? 2
- Sum of all elements in matrix area # 2 is 2
- Trace of matrix area # 2 is 2
-
-
-
-
-
- Interactive Matrix Calculator Documentation Page 12
-
-
- TRANSPOSE COMMAND
-
- The Transpose command interchanges rows and columns, for example
- changing the ith row into the ith column. If a(ij) represents the
- element in the ith row and jth column of the original matrix A, then it
- will become the element in the jth row and ith column of A', the
- transpose. If the original matrix has m rows and n columns, then the
- transpose will have n rows and m columns. Again, it is a good idea to
- print the transposed matrix. Execution begins by touching the ' key
- and then entering the numbers for the origninal and transpose
- matrices.
-
- READY
- '
- Transpose routine
- Enter number of matrix to transpose and matrix number for result: 1 2
- Matrix 2 = Matrix 1'
-
-
- FUZZ COMMAND
-
- Sometimes values that should be zero turn out "close" to zero. For
- example, -8.88 times 10 to the minus 16 is "close" to zero. The Fuzz
- routine goes through and compares each element of a matrix with an
- "Epsilon" value, changing those which are smaller in absolute value
- than Epsilon to zero. The first part of the Fuzz command allows the
- user to change the value of Epsilon. The second part allows a
- particular matrix to be "defuzzed."
-
- The product of a matrix with its diagonal should be an identity
- matrix, but often the off-diagonal elements are close but not quite
- equal to zero. Touching the "Z" key at the READY prompt starts the
- Fuzz procedure. For the example below, a matrix is defuzzed and then
- printed. Note that the first element should be 1, but is instead
- "close" to one. The fuzz routine changes only values that are "close"
- to zero.
-
- READY
- Z
- Matrix defuZzing routine
- Epsilon is currently 1.000000013351432D-10
- Enter a new value to change, or hit <CR> to leave:
-
- To defuZz or convert absolute values < 1.000000013351432D-10 to zeroes,
- Enter matrix area number. <CR> Otherwise: 2
-
- Values in matrix area # 2 which were less than
- 1.000000013351432D-10 have been changed to zeroes
- p
- Matrix output routine
- Enter number of matrix to display or
- enter a file name to write matrix to a disk file: 2
-
- Row # 1 : .9999999999999999 , 0 ,
- Row # 2 : 0 , 1 ,